1) Установка необходимых пакетов
# apt-get install libapache2-mod-fastcgi php5-fpm
2) Настройка php.
В настройках php-fpm.conf указываем сокет:
listen = 127.0.0.1:9000
Перезапускам php.
Создаем файл 030_php-fpm.conf такого содержания и ложим его в /etc/apache2/mods-enabled:
<IfModule proxy_fcgi_module> <IfModule dir_module> DirectoryIndex index.php </IfModule> <FilesMatch "\.php$"> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch> ProxyTimeout 1200 </IfModule>
3) Режим работы apache.
Обязательно включаем режим mpm_event, что бы сделать его многотредовым.
# a2enmod mpm_event
Включаем модули для работы fastcgi:
# a2enmod proxy
# a2enmod proxy_http
Выключаем mpm_prefork (он конфликтует с mpm_event) и php5 (mod_php)
# a2dismod mpm_prefork
# a2dismod php5
Проверяем работу:
# apache2ctl restart
# apache2ctl -V
Server version: Apache/2.4.23 (Ubuntu)
Server built: 2016-07-11T00:00:00
Server's Module Magic Number: 20120211:61
Server loaded: APR 1.5.1-dev, APR-UTIL 1.5.3
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
2 коментарі “[apache] fastcgi + php-fpm”
ProxyTimeout 1200 тут не работает
Почему?